#!/bin/bash
 
# 获取当前时间戳
TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S")
 
# 使用top命令获取CPU占用率（用户空间和内核空间的总和），并提取相关信息
# 注意：这种方法可能不是最精确的，但它是一个简单且常用的方法
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | \
           sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | \
           awk '{print 100 - $1}')
 
# 将时间戳和CPU占用率记录到input.txt文件中
echo "$TIMESTAMP CPU Usage: $CPU_USAGE%" >> /home/testShell/task/input.txt

# DingTalk Webhook 地址
WEBHOOK_URL="https://oapi.dingtalk.com/robot/send?access_token=2e245f19a01a423dc62b4cc07c470f6e5baf45f20042f43a1721f620f46b5cdf"
str_to_num=3

#整数
integer=$(echo "$CPU_USAGE / 1" | bc) 

#告警级别
alarm_level="轻微"

if [ $integer -lt 10 ]; then
    alarm_level="轻微"
elif [ $integer -ge 10 ] && [ $integer -lt 30 ]; then
    alarm_level="稍微严重"
elif [ $integer -ge 30 ] && [ $integer -lt 50 ]; then
    alarm_level="严重"
elif [ $integer -ge 50 ]; then
    alarm_level="特别严重"
fi	


# 如果cpu超过3%，就往钉钉的webhook里面发数据
if [ $integer -ge  $str_to_num ]
then
    MESSAGE="{\"msgtype\": \"text\", \"text\": {\"content\": \"CPU-报警 : $CPU_USAGE%\n时间 : $TIMESTAMP\n告警级别 : $alarm_level\n请运维人员尽快处理!!! \"}}"
    curl -s -o /dev/null -H "Content-Type: application/json" -d "$MESSAGE" "$WEBHOOK_URL"
    #echo "success"
    echo "$TIMESTAMP sengMsg success!" >> /home/testShell/task/msg_status.txt
fi

